/* ===================================================================
 * Copyright (C) 2024 Hefei Jiushao Intelligent Technology Co., Ltd.
 * All rights reserved.
 *
 * This software is licensed under the GNU Affero General Public License
 * v3.0 (AGPLv3.0) or a commercial license. You may choose to use this
 * software under the terms of either license.
 *
 * For more information about the AGPLv3.0 license, please visit:
 * https://www.gnu.org/licenses/agpl-3.0.html
 * For licensing inquiries or to obtain a commercial license, please
 * contact Hefei Jiushao Intelligent Technology Co., Ltd.
 * ===================================================================
 * Author: JasonChen
 */

#ifndef SERVICE_CONFIG_H
#define SERVICE_CONFIG_H

#include <string>
#include <vector>
#include <unordered_map>
#include "common/constant.h"

#define DEFAULT_SERVER_PORT (8080)
#define HTTP_PATH_SPLIT_CHAR '/'

AMCAX_EXCHANGE_NAMESPACE_BEGIN
class Config
{
public:
    static Config &get_instance()
    {
        static Config instance;
        return instance;
    };

    ~Config();

    void init(std::string &config_folder);
    
    const std::string &get_log_level() const { return log_level_; };
    const std::string &get_log_path() const { return log_path_; };

private:
    Config() = default;
    Config(const Config &) = delete;
    Config &operator=(const Config &) = delete;

    std::string log_level_{""};
    std::string log_path_{""};
};

AMCAX_EXCHANGE_NAMESPACE_END
#endif